#include <iostream>
#include <fstream> // 跟文件IO相关的头文件
using namespace std;

/*
    1.C++把读取文件--》 封装成类 ifstream  input file stream
      C++把写入文件--》 封装成类 ofstream output file stream

    2.演示文件读取
        (1) 创建对象
              ifstream fin("test.txt"); // 创建对象并打开文件
*/

int main()
{
    char buf[100] = {0};

    // ifstream fin;         // 创建对象
    // fin.open("test.txt"); // 打开文件

    ifstream fin("test.txt"); // 创建对象并打开文件

    // 读取文件
    fin.read(buf, 100);
    cout << "buf: " << buf << endl;

    fin.clear();
    fin.seekg(0, ios_base::beg); // 将文件指针移动到文件开头    ios::beg 从文件开头开始    ios::end 从文件末尾开始    ios::cur 从当前位置开始

    char buf1[100] = {0};
    fin.getline(buf1, 100);
    cout << "buf1: " << buf1 << endl;

    fin.clear();
    // fin.seekg(2, ios_base::beg);

    char ch = 0;
    // ch = fin.get();
    fin.get(ch);
    cout << "ch: " << ch << endl;

    // 文件写入
    ofstream fout("test.txt", ios::app); // 创建对象并打开文件
    
    fout << "world hello" << endl;
    fout.close();

    // 关闭文件
    fin.close();
}